package com.gqj.meter.service;


import com.gqj.meter.domain.MdStorageAreaInfo;
import com.gqj.meter.domain.MdWhAreaInfo;

import java.util.List;
import java.util.Map;

/**
 * 存放区信息Service接口
 *
 * @author lxq
 * @date lxq-01-09
 */
public interface IMdStorageAreaInfoService
{
    /**
     * 查询存放区信息
     *
     * @param storeAreaId 存放区信息主键
     * @return 存放区信息
     */
    public MdStorageAreaInfo selectMdStorageAreaInfoByStoreAreaId(Long storeAreaId);

    /**
     * 查询存放区信息列表
     *
     * @param mdStorageAreaInfo 存放区信息
     * @return 存放区信息集合
     */
    public List<MdStorageAreaInfo> selectMdStorageAreaInfoList(MdStorageAreaInfo mdStorageAreaInfo);

    /**
     * 新增存放区信息
     *
     * @param mdStorageAreaInfo 存放区信息
     * @return 结果
     */
    public int insertMdStorageAreaInfo(MdStorageAreaInfo mdStorageAreaInfo);

    /**
     * 修改存放区信息
     *
     * @param mdStorageAreaInfo 存放区信息
     * @return 结果
     */
    public int updateMdStorageAreaInfo(MdStorageAreaInfo mdStorageAreaInfo);

    /**
     * 批量删除存放区信息
     *
     * @param storeAreaIds 需要删除的存放区信息主键集合
     * @return 结果
     */
    public int deleteMdStorageAreaInfoByStoreAreaIds(Long[] storeAreaIds);

    /**
     * 删除存放区信息信息
     *
     * @param storeAreaId 存放区信息主键
     * @return 结果
     */
    public int deleteMdStorageAreaInfoByStoreAreaId(Long storeAreaId);

    /**
     * 校验存放区编码是否唯一
     *
     * @param mdStorageAreaInfo 存放区信息
     * @return 结果
     */
    public String checkStoreAreaNoUnique(MdStorageAreaInfo mdStorageAreaInfo);

    /**
     * 查询存放区下拉框
     *
     * @param mdStorageAreaInfo 存放区
     * @return 存放区集合
     */
    public List<Map<String, Object>> mdStorageAreaInfoOptions(MdStorageAreaInfo mdStorageAreaInfo);

    /**
     * 导入存放区数据
     *
     * @param mdStorageAreaInfoList 存放区列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importMdStorageAreaInfo(List<MdStorageAreaInfo> mdStorageAreaInfoList, Boolean isUpdateSupport, String operName);
}
